:root {
    --fg-gray: #495057;
    --bg-gray: rgba(0,0,0,0.25);
    --bg-gray-lt: rgba(0,0,0,0.15);
    --gradbar: linear-gradient(to right, #ddd, #666, #ddd);
    --gradbar2: linear-gradient(to right, #ddd, #999, #ddd);
    --gradbar-vert: linear-gradient(to bottom, #ddd, #666, #ddd);
    --holdbar: linear-gradient(to top, rgba(100,100,100,0.1), rgba(255,255,255,1), rgba(100,100,100,0.1));
    --holdbar-dk: linear-gradient(to top, rgba(100,100,100,0.1), rgba(255,255,255,0.25), rgba(100,100,100,0.1));
    --holdbar-sf: linear-gradient(to top, rgba(200,200,200,0.1), rgba(255,255,255,1), rgba(200,200,200,0.1)) !important;
    --highlight: rgba(126,153,183,0.4);
    --main-color: rgba(126,153,183,1);
    --main-color-hover: rgb(96,127,164);
    --row-hover: rgb(126,153,183,0.25);
    --work-area: transparent;
    --header: rgba(126,153,183,0.5);
    --menu: #f0f0f0;
    --menu-text: #222;
    --menu-border: #555;
    --dark-menu-text: #111;
    --menu-hover: #ddd;
    --blue-1: rgb(96,127,164);
    --blue-2: rgb(126,153,183);
    --blue-3: rgb(190, 204, 219);
    --blue-4: rgb(221, 228, 234);
    --blue-5: rgb(240, 243, 245);
    --blue-6: rgb(247, 249, 250);
}

/* surface size configuration and font import */
@font-face {
    font-family: 'Russo One';
    src: url('/moto/russo-one.ttf');
}
@media only screen and (max-width : 1000px) {
    .top-menu > span > label {
        display: none;
    }
}
@media only screen and (max-width : 1200px) {
    #top {
        font-size: smaller;
    }
}
@media only screen and (max-height : 1024px) {
    body {
        font-size: smaller;
    }
}
@media only screen and (max-height : 750px) {
    .lt-menu, .pop-lcol {
        font-size: 16px !important;
    }
    .lt-menu svg {
        font-size: 30px !important;
    }
    .pop-lcol svg {
        font-size: 20px !important;
    }
    #mod-x {
        position: absolute;
        font-size: 30px;
        top: 8px;
    }
}

html, body {
    position: relative;
    height: 100%;
    margin: 0;
}
/* default element configuration */
a, a:hover, a:visited {
    border: none;
    color: inherit;
    text-decoration: none;
}
div {
    position: relative;
}
button.yellow {
    background-color: #eda;
    border: 1px solid rgba(0,0,255,0.5);
}
button.yellow:hover {
    background-color: #eea;
}
button {
    display: flex;
    border: 1px solid #ccc;
    border-radius: 3px;
    background-color: #eee;
    padding: 2px 7px 3px 7px;
    margin: 1px 1px 2px;
    cursor: pointer;
    text-transform: capitalize;
}
button:hover {
    background-color: var(--main-color);
    color: white;
}
button[load] {
    width: 100%;
    text-align: left;
}
button[del] {
    margin-left: 5px;
}
input {
    background-color: #f8f8ff;
    margin-bottom: 1px;
    text-align: right;
    border: 0.5px solid #bbb;
    padding-top: 0;
    padding-bottom: 0;
    margin-top: 1px;
    position: relative;
}
input:focus {
    outline: 0;
    box-shadow: 0 0 0 0.2rem rgb(0 100 255 / 10%);
}
input[disabled] {
    background-color: #ddd;
    color: #000;
    border-width: 1px;
}
input[type="range"] {
    width: 85px;
    background-color: transparent;
}
input[type=range]::-moz-focus-outer {
    border: 0;
}
input[type="checkbox"] + .color {
    z-index: 10000;
    width: 15px;
    height: 15px;
    border: 1px solid rgba(0,0,0,0.1);
    border-radius: 3px;
    display: inline-block;
    pointer-events: none;
    margin: 2px;
}
input[type="checkbox"]:not(:checked) + .color {
    border: 1px solid blue;
    background-color: rgba(255,255,255,0.5) !important;
}
input[type="checkbox"].color {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    opacity: 0;
    width: 100%;
    height: 100%;
}
select, textarea, button, input, a {
    outline: none;
}
textarea {
    overflow: scroll;
}
select {
    border: 1px solid #bbb;
    background-color: rgba(255,255,255,0.5);
    border-radius: 3px;
}
th, tr, td, span, div, label, button {
    user-select: none;
}
th, tr, td, label {
    white-space: nowrap;
}

/* container for entire page / app */
#app {
    position: fixed;
    font-weight: normal;
    font-family: sans-serif;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}

#app-name .km-font {
    font-size: larger;
}

/* top menu bar, drop menus */
#top, #app-name {
    background-color: #fff;
    text-transform: capitalize;
    font-family: sans-serif;
    z-index: 15;
    height: 36px;
}
#top > div {
    margin: 0 5px 0 5px;
}

.top-menu {
    display: flex;
    gap: 0px;
    align-items: center;
    white-space: nowrap;
    align-items: stretch;
}
.top-menu > span {
    padding: 5px 9px 5px 9px;
    border-left: 1px solid transparent;
    border-right: 1px solid transparent;
}
.top-menu hr {
    width: calc(100% - 3px);
    margin: 0;
    border: 0;
    padding: 0;
    height: 0.5px;
    background-color: var(--menu-border);
}
.top-menu label {
    color: #444;
}
.dark .top-menu label {
    color: var(--dark-menu-text)
}
.top-menu svg {
    color: #555;
}
.top-menu > span {
    position: relative;
    display: flex;
    gap: 5px;
    align-items: center;
}
.top-menu > span:hover label {
    color: #000;
}
.dark .top-menu > span:hover label {
    color: var(--dark-menu-text) !important;
}
.top-menu > span:hover > svg {
    color: black;
}
.top-menu > span:hover {
    background-color: var(--blue-4);
    border-left: 1px solid var(--blue-2);
    border-right: 1px solid var(--blue-2);
}
.top-menu > span.selected, .top-menu-drop div.selected {
    background-color: var(--blue-3);
}
.top-menu > span:hover .top-menu-drop {
    display: flex;
}
.top-menu-left .content {
    border-top-right-radius: 4px; 
}
.top-menu-right {
    align-items: self-end;
}
.top-menu-center .content > div > label {
    text-align: center !important;
}
.top-menu-right .content {
    border-top-left-radius: 4px; 
}
.top-menu-drop {
    position: absolute;
    display: none;
    top: 100%;
    left: -1px;
    right: -1px;
    flex-direction: column;
    font-family: sans-serif;
}
.top-menu-drop svg {
    width: 15px;
}

#top .content {
    gap: 2px;
    display: flex;
    align-items: center;
    flex-direction: column;
    background-color: #fff;
    border-top: 1px dashed var(--blue-2);
    border-left: 1px solid var(--blue-2);
    border-right: 1px solid var(--blue-2);
    border-bottom: 1px solid var(--blue-2);
    border-bottom-right-radius: 4px;
    border-bottom-left-radius: 4px;
}
#top .content {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 2px;
}
#top .content > div {
    display: flex;
    flex-direction: row;
}
#top .content > div > label {
    text-align: left;
    flex-grow: 1;
}
#top .content > div > span {
    text-align: right;
}
#top .content > div > span {
    padding: 2px 7px 2px 7px;
    padding-left: 10px;
    text-align: center;
}
#top .content > div > label {
    padding: 2px 7px 2px 7px;
    justify-self: stretch;
    align-self: stretch;
    border-radius: 3px;
}
#top .content > div:hover {
    background-color: var(--blue-4);
}

#app-name {
    position: absolute;
    top: 0;
    left: 50%;
    z-index: 50;
    transform: translateX(-50%);
}
#app-name {
    cursor: pointer;

}
#app-name hr {
    margin: 1px;
}
#app-name:hover #app-name-pop {
    display: flex;
}
#app-name-pop {
    color: var(--fg-gray);
    font-family: sans-serif;
    position: absolute;
    top: 100%;
}
#app-name-pop .content {
    text-align: center;
}
#app-lang {
    justify-content: flex-end;
}
#app-lang:hover #lang-pop {
    display: flex;
}

#app,div {
    display: flex;
    padding: 0;
    border: 0;
    margin: 0;
}
#loading {
    width: 40px;
    height: 40px;
    padding-right: 15px;
    position: fixed;
    display: none;
}

.noselect {
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.km-font {
    font-family: 'Russo One', sans-serif;
}
.menu-title {
    font-size: larger;
    font-weight: bold;
}

.b0 {
    border: 0px;
}
.bt1 {
    border: 1px solid transparent;
}
.bt2 {
    border: 2px solid transparent;
}
.contents {
    display: contents;
}
.hide {
    display: none !important;
}
.noshow {
    display: none;
}
.gap1 {
    gap: 1px;
}
.gap2 {
    gap: 2px;
}
.gap3 {
    gap: 3px;
}
.gap4 {
    gap: 4px;
}
.gap5 {
    gap: 5px;
}
.grid {
    display: grid;
}
.frow {
    flex-direction: row;
}
.f-col {
    flex-direction: column;
}
.auto {
    flex-basis: auto;
}
.basis-50 {
    flex-basis: 50%;
}
.grow {
    flex-grow: 1;
}
.a-start {
    align-items: flex-start;
}
.a-center {
    align-items: center;
}
.a-end {
    align-items: flex-end;
}
.a-stretch {
    align-items: stretch;
}
.j-start {
    justify-content: flex-start;
}
.j-center {
    justify-content: center;
}
.j-end {
    justify-content: flex-end;
}
.space-around {
    justify-content: space-around;
}
.space-between {
    justify-content: space-between;
}
.center {
    text-align: center;
}
.middle {
    display: flex;
    align-items: center;
    justify-content: center;
}
.t-just {
    text-align: justify;
}
.t-right {
    text-align: right;
}
.russo {
    font-family: 'Russo One', sans-serif;
}
.overy {
    overflow-y: auto;
}
.mh0 {
    min-height: 0;
}
.mh35 {
    max-height: 35%;
}
.mh85 {
    max-height: 85%;
}
.mlr10 {
    margin: 0 10px 0 10px;
}
.mt10 {
    margin-top: 5px;
}

:-moz-any() {
    overflow-x: hidden !important;
    overflow-y: hidden !important;
}
:-moz-any() {
    overflow-x: scroll !important;
    overflow-y: scroll !important;
    margin-right: -14px !important;
    margin-bottom: -14px !important;
}

#curtain {
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    position: fixed;
    background-color: #fff;
    font-family: 'Russo One', sans-serif;
    z-index: 1000;
}

#tracker {
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    position: absolute;
    display: none;
    z-index: 101;
}

#container {
    position: fixed;
    z-index: -1;
    width: 100%;
    height: 100%;
}
#container canvas {
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.chonk {
    min-height: 3px;
    max-height: 3px;
    min-width: 100px;
    background-color: var(--bg-gray-lt);
}
.chonk2 {
    min-height: 3px;
    max-height: 3px;
    min-width: 100px;
    background-color: var(--bg-gray-lt);
}
#mode-info {
    white-space: nowrap;
    font-size: smaller;
    font-family: sans-serif;
    align-items: stretch;
    justify-content: center;
    padding: 2px 0 2px 0;
    display: grid !important;
    margin-right: 0 !important;
    margin-bottom: 2px !important;
    grid-template-columns: auto 1fr;
    row-gap: 1px;
}
#mode-info > div {
    display: contents;
}
#mode-info label {
    font-size: smaller;
    font-weight: bold;
    align-self: right;
    margin: 0 0 0 5px;
    padding: 3px 5px 3px 5px;
    color: var(--fg-gray);
    background-color: var(--blue-4);
    border-top-left-radius: 5px;
    border-bottom-left-radius: 5px;
    border-top: 1px solid var(--blue-3);
    border-left: 1px solid var(--blue-3);
    border-right: 0;
    border-bottom: 1px solid var(--blue-3);
}
#mode-info span {
    font-size: smaller;
    margin: 0 5px 0 0;
    padding: 3px 5px 3px 5px;
    color: var(--fg-gray);
    background-color: white;
    border-top-left-radius: 0;
    border-top-right-radius: 5px;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 5px;
    border-top: 1px solid var(--blue-3);
    border-left: 0;
    border-right: 1px solid var(--blue-3);
    border-bottom: 1px solid var(--blue-3);
}

#doit {
    display: none;
    position: absolute;
    white-space: nowrap;
    font-size: smaller;
    font-family: sans-serif;
    margin-top: 5px;
    padding: 5px;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
}
#undo, #redo {
    color: var(--main-color);
    margin: 2px;
    padding: 4px;
}
#undo:disabled, #redo:disabled {
    color: rgba(0,0,0,.1) !important;
    background-color: rgba(0,0,0,0.1) !important;
}
#undo:hover, #redo:hover {
    color: black;
    background-color: rgba(0,0,0,0.2);
}

#lang-hold {
    background-color: transparent;
    position: absolute;
    top: -35px;
    left: -35px;
    right: -35px;
    bottom: -35px;
}
#lang-pop {
    display: none;
    position: absolute;
    right: calc(100% + 2px);
    top: 0;
    padding: 1px;
    text-align: right;
    align-items: stretch;
    white-space: nowrap;
    background-color: #fff;
    border: 1px solid var(--blue-2);
    border-radius: 4px;
    flex-direction: column;
}
#lang-pop > div {
    padding: 2px 7px 2px 7px;
}
#lang-pop > div:hover {
    background-color: var(--blue-4);
}

#mid {
    position: fixed;
    top: 45px;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none;
}

#mod-print button, #catalogList button, #settingsList button {
    text-transform: none !important;
}

#panel-left, #panel-right {
    max-height: 100%;
    background-color: var(--work-area);
}
#panel-left, #panel-right, #modal {
    pointer-events: visible;
}
#panel-left label, #panel-left svg {
    pointer-events: none;
}

#ws-widgets button {
    text-transform: none;
    text-align: left;
    align-items: center;
}
#ws-widgets button.selected {
    background-color: var(--blue-4);
    color: #000;
}
.slim-hide {
    width: 0;
    overflow: hidden;
}

#top-sep {
    display: none;
}
#top-sep {
    z-index: 14;
    height: 1px;
    min-height: 1px;
    max-height: 1px;
    background-image: var(--gradbar);
}
.line-sep2 {
    z-index: 14;
    height: 1px;
    min-height: 1px;
    max-height: 1px;
    background-image: var(--gradbar2);
}

.movable {
    margin: 5px;
}
.movable input {
    background-color: rgba(255,255,255,0.5);
}
.movable .title {
    color: white;
    padding: 2px 3px 1px 3px;
    background-color: var(--main-color);
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    font-size: smaller;
    text-align: center;
}
.movable .body {
    margin: 0;
    padding: 0 5px 0 0;
    background-color: rgba(245,245,245,0.8);
}
.movable:hover .body {
    background-color: rgba(245,245,245,0.95);
}
.movable .footer {
    height: 10px;
    border-bottom-left-radius: 5px;
    border-bottom-right-radius: 5px;
    background-color: var(--main-color);
}

.closer {
    position: absolute;
    top: 3px;
    right: 6px;
    z-index: 200;
}
.closer:hover {
    color: #555;
}

.tictac {
    margin: 2px 2px 2px 0;
    padding: 4px;
    border-radius: 3px;
    border: 1px solid white;
    background-color: rgba(255,255,255,0.7);
    display: flex;
    align-items: center;
    justify-content: center;
}
.tictac:hover {
    border: 1px solid #ccc;
    background-color: #eee;
}
.tictac.selected {
    background-color: var(--main-color);
    color: #fff;
}

#float-tools {
    position: absolute;
    margin: 0 0 0 5px;
    top: 50px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 16;
}
#float-tools button {
    display: flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap;
}

#float-tools .menu {
    margin-right: 5px;
    border-right: 3px solid var(--main-color);
}
#float-tools .title {
    min-height: 18px;
}

#lab-axis, #lab-scale, #lab-size {
    border-radius: 3px;
    padding: 2px;
    border: 1px solid white;
}
#lab-axis:hover, #lab-scale:hover {
    background-color: var(--main-color);
    color: white;
}

#ft-rotate {
    grid-gap: 2px;
    grid-template-rows: auto auto auto 1fr;
    grid-template-columns: auto auto auto auto;
}
#ft-rotate label, #ft-rotate svg {
    text-align: center;
}
#ft-rotate svg {
    margin-top: 2px;
    padding: 1px 15px 1px 15px;
    border: 1px solid transparent;
    border-radius: 3px;
}
#ft-rotate > div:hover > svg {
    background-color: var(--main-color);
    color: white;
}
#ft-rotate > div {
    display: flex;
    align-items: center;
    justify-content: center;
}
#ft-rotate .buttons {
    grid-column: 1/4;
    align-items: stretch;
    min-width: 150px;
}
#ft-scale {
    grid-gap: 2px;
    grid-template-rows: auto auto auto 1fr;
    grid-template-columns: auto auto auto 1fr;
}
#ft-scale label {
    text-align: center;
    flex-grow: 1;
}
#ft-scale button {
    grid-column: 1/4;
    margin-left: 0;
    margin-right: 0;
}
#ft-mesh label {
    font-size: smaller;
}
#ft-mesh .value {
    font-family: monospace;
    padding-left: 4px;
}
#ft-mesh {
    min-width: 200px;
}
.render-tools {
    display: grid;
    margin: 4px 0 0 0;
    /* gap: 3px; */
    grid-template-columns: 1fr 1fr 1fr;
}
.render-tools > span {
    justify-self: center;
    width: 25px;
    height: 25px;
    display: flex;
    flex-shrink: 0;
    flex-direction: column;
}
.render-tools > span > * {
    padding: 0;
    margin: 0;
}
.render-tools svg {
    border: 1px solid transparent;
    border-radius: 3px;
    padding: 3px;
}
.render-tools svg:hover {
    border: 1px solid blue;
    background-color: var(--blue-4);
}
#render-hide > a {
    border: 0.5px dashed black;
    border-radius: 2px;
    width: 17px;
    height: 17px;
}
#mesh-info {
    grid-gap: 2px;
    grid-template-rows: auto auto auto;
    grid-template-columns: auto 1fr;
}
#lock_x, #lock_y, #lock_z {
    position: absolute;
    right: 2px;
    top: 7px;
}
#lay-flat.selected {
    background-color: var(--main-color);
}

#lt-back, #lt-options {
    flex-direction: row;
    position: absolute;
    display: none;
    gap: 5px;
    top: 0;
}
#lt-trash:hover, #lt-w-enable:hover, #lt-w-disable:hover {
    color: var(--main-color);
}
#act-sep, #lt-sep {
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
    background-color: var(--main-color);
    height: 10px;
    left: -5px;
}

#lt-end {
    height: 10px;
    border-top-right-radius: 1px;
    border-bottom-right-radius: 10px;
    background-color: var(--main-color);
    left: -5px;
}
#act-animate.disabled {
    color: #aaa !important;
}

.lt-menu {
    flex-direction: column;
    align-items: center;
    margin: 2px 0 2px 0;
    padding: 5px 5px 5px 10px;
    border: 1px solid rgba(0,0,0,0);
    border-radius: 3px;
    color: #ccc;
    left: -5px;
    background-color: rgba(255,255,255,0.75);
}
.lt-menu svg {
    font-size: 40px;
    text-align: center;
}
.lt-menu label {
    font-size: small;
}

.dev-buttons {
    margin: 1px -1px 0 -1px;
}
.dev-buttons button {
    margin-left: 2px;
    margin-right: 2px;
    padding-bottom: 2px;
}
#dg .ext-buttons button {
    cursor: pointer;
}
.ext-buttons button {
    justify-content: center;
    align-items: center;
    text-align: center;
    flex-grow: 1;
    margin-top: 3px;
    height: 75%;
}
.ext-buttons label {
    font-size: smaller;
    margin: 3px 0 3px 0;
}
.txt-sel {
    background-color: #eee;
}
.txt-sel button, .btn-sel {
    background-color: var(--highlight);
}

#end {
    left: 0;
    right: 0;
    bottom: 0;
    position: fixed;
    text-align: center;
    font-size: smaller;
}

#camop_dialog {
    flex-direction: column;
}
#camop_dialog textarea {
    border: 1px solid gray;
    margin: 5px 1px 5px 1px;
    background-color: #f4f4f4;
}
#camop_dialog button, #camop_dialog label {
    text-align: center;
    display: block;
}
#camops {
    display: flex;
    padding: 5px 0 0 0;
}
.cam-pop-op {
    top: 0;
    right: calc(100% + 4px);
    text-align: left;
    position: absolute;
    white-space: nowrap;
    flex-direction: column;
    background-color: #fff;
    border: 1px solid #aaa;
    border-radius: 5px;
    margin-right: 6px;
    padding: 5px 3px 5px 3px;
    gap: 1.5px;
}
.pop-tics {
    position: absolute;
    left: -1px;
    right: -1px;
    bottom: 100%;
    margin: 0 0 2px 0;
}
.pop-tics > div {
    gap: 3px;
    padding: 5px;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    font-size: 11px;
    flex-direction: row;
    background-color: rgba(255,255,255,0.6);
    border: 1px solid rgba(0,0,0,0.25);
    border-radius: 5px;
    word-break: break-word;
    white-space: normal;
}
#oplist {
    gap: 3px;
    margin-bottom: 3px;
}
#oplist .clock {
    border: 0;
    background-color: var(--blue-3);
}
#oplist 
#camops .set-sep {
    margin-bottom: 4px;
}
#oplist .clock:hover {
    background-color: var(--blue-2);
}
#oplist > div, .opdiv {
    display: flex;
    flex-direction: column;
    align-items: left;
    justify-content: center;
    border: 1px solid rgba(0,0,0,0.25);
    border-radius: 4px;
    padding: 5px 10px 5px 10px;
    background-color: rgba(255,255,255,0.75);
    white-space: nowrap;
}
#oplist > div:hover, #op-add:hover {
    background-color: var(--blue-4);
}
#oplist > div.editing {
    background-color: rgba(190,230,190,0.85);
}
#oplist .drag {
    background-color: var(--highlight) !important;
}
#oplist .notime {
    background-color: rgba(150,150,150,0.5) !important;
}
#oplist .disabled {
    background-color: rgba(125,125,125,0.5) !important;
}
#oplist div .label {
    pointer-events: none;
}
#oplist div .del {
    position: absolute;
    top: 1px;
    right: 2px;
    font-size: 14px;
    color: rgba(0,0,0,0);
}
.dark #oplist div:hover .del {
    color: #777;
}
#oplist div:hover .del {
    color: #888;
    z-index: 10000;
}
#oplist div .del:hover {
    color: #000 !important;
}
#oplist div .opop {
    position: absolute;
    bottom: 100%;
    white-space: pre;
    font-family: monospace;
    font-size: smaller;
    text-align: left;
    margin: 2px;
    padding: 5px;
    display: none;
}
#oplist div:hover .opop {
    display: flex;
}
.mobile #oplist {
    font-size: larger;
}
.mobile #op-add-pop {
    font-size: larger;
}
#op-add-pop {
    position: absolute;
    display: none;
    top: 0;
    right: 100%;
    transform: translateY(-50%);
}
#op-add:hover #op-add-pop {
    display: flex;
}
.op-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto;
    align-items: center;
    gap: 5px;
}
#op-add-list {
    margin-right: 10px;
    padding: 4px;
    display: flex;
    align-items: stretch;
    flex-direction: column;
    text-transform: none !important;
}
#op-add-list > div {
    padding: 3px 5px 3px 5px;
    display: flex;
    flex-direction: column;
    border: 1px dashed gray;
    border-radius: 3px;
    text-align: center;
}
#op-add-list > div:hover {
    background-color: var(--blue-4);
}
#op-add-contour-menu, #op-add-register-menu {
    position: absolute;
    right: 0;
    top: 0;
}
#cam-lathe:hover {
    background-color: rgba(0,0,0,0) !important;
}

#progress {
    left: 0;
    right: 0;
    height: 6px;
    min-height: 6px;
    text-align: center;
    background-color: rgb(220,220,220);
    border-top: 1px solid #888;
    border-bottom: 1px solid #888;
    /* border-radius: 3px; */
}
#progbar {
    width: 0;
    text-align: left;
    position: relative;
    background-color: rgb(255,90,90);
    /* border-radius: 3px; */
}
#progtxt {
    display: none;
    color: white;
    margin: 0 5px 0 5px;
    padding: 0 5px 2px 5px;
    white-space: nowrap;
    flex-direction: row;
    align-items: center;
    vertical-align: middle;
}

#modal {
    display: none;
    position: fixed;
    z-index: 20;
    top: 50%;
    left: 0px;
    right: 0px;
    bottom: 0px;
    height: 300px;
    transform: translateY(-50%);
    background-color: var(--bg-gray);
    border-bottom: 1px solid black;
    border-top: 1px solid black;
    overflow: hidden;
}
#modal button, #modal select {
    color: black !important;
}
#modal > div {
    position: absolute;
    transform: translateX(50%) translateY(-50%);
    right: 50%;
    top: 50%;
    max-height: 80%;
}
.mdialog {
    display: none;
    padding: 10px;
    min-height: 20px;
    font-size: smaller;
    background-color: #fff;
}

.mod-top {
    height: 10px;
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
    background-color: var(--main-color);
}
#tool-cols {
    max-height: 350px;
}
#mod-x {
    position: absolute;
    z-index: 30;
    bottom: -20px;
    right: 5px;
}
#mod-setup {
    height: 550px;
    width: 725px;
    padding-bottom: 5px;
}
#mod-setup .header {
    text-align: center;
    border-bottom: 1px solid rgba(126,153,183,1);
    padding-bottom: 5px;
    margin-bottom: 5px;
    font-weight: bold;
}
#mod-setup .header.sub {
    padding-top: 10px;
}
#dev-search {
    position: absolute;
    font-size: 10px;
    right: 3px;
}
#dev-search:hover {
    color: #00f;
}
#dev-filter {
    transform: translateY(-7px);
    text-align: center;
    position: absolute;
    display: none;
    padding: 1px;
    right: 150%;
}
#mod-setup .left {
    width: 180px;
    padding-right: 10px;
    margin-right: 10px;
    border-right: 1px solid #ddd;
}
#mod-setup .footer {
    padding-top: 5px;
    margin-top: 5px;
    border-top: 1px solid rgba(150,130,200,0.5);
}
.devlist {
    background-color: #fdfdfd;
}
.devlist button {
    margin: 1px;
    padding: 2px;
    border: 0;
    border-radius: 0;
    font-size: 11px;
    font-family: sans-serif;
    background-color: #f8f8f8;
    text-align: left;
    min-height: 1.5em;
}
.devlist button:hover {
    background-color: var(--main-color);
    color: white;
}
.devlist button.selected {
    background-color: var(--highlight);
    border: 1px solid var(--highlight);
}
#mod-help svg {
    width: 36px;
    height: 36px;
    padding-right: 10px;
    color: var(--main-color);
}
#mod-help a {
    border-radius: 5px;
    padding: 3px 10px 3px 5px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}
#mod-help a:hover {
    background-color: #eee;
}
#mod-help a:hover svg {
    color: #123;
}
#mod-help .title {
    font-weight: bold;
    font-size: larger;
    padding-bottom: 10px;
}
#kiri-version {
    font-family: monospace;
    padding-top: 5px;
}
#mod-print {
    background-color: rgba(255,255,255,0.85);
}
#mod-print .grow button {
    margin-left: 5px;
}
#mod-print .hint {
    color: #345;
    font-size: 12px;
    font-style: italic;
    text-align: center;
    font-weight: normal;
    padding-top: 5px;
}
#mod-print .box {
    background-color: rgba(255,255,255,0.5);
    border: 1px solid #bbb;
    border-radius: 3px;
    padding: 20px 10px 10px 10px;
}
#mod-print .box select {
    min-width: 10em;
}
#mod-print .header {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    transform: translateY(50%);
    z-index: 10;
}
#mod-print .header label {
    background-color: white;
    padding: 0 10px 0 10px;
    border-radius: 5px;
    border-right: 1px solid #bbb;
    border-left: 1px solid #bbb;
}
#mod-print a {
    text-decoration: underline;
}
#mod-print a:hover {
    color: #567;
    background-color: #ddd;
}
#mod-print label {
    flex-grow: 1;
    font-weight: bold;
    padding-right: 10px;
}
#mod-print button {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 2em;
}
#print-canvas {
    width: 180px;
    height: 320px;
    border: 1px solid #ccc;
    background-color: #f5f5f5;
    transform: scale(-1, 1);
}
#print-layer {
    font-family: 'Russo One', sans-serif;
    font-size: small;
    width: 5em;
    padding: 0 !important;
    text-align: right;
}
#print-download {
    min-height: 4em !important;
}
#print-palette {
    display: none;
}
#code-preview-textarea {
    width: 40em;
    height: 12em;
    font-size: smaller;
    font-family: Courier,monospace;
}
.mod-end {
    height: 10px;
    border-bottom-left-radius: 10px;
    border-bottom-right-radius: 10px;
    background-color: var(--main-color);
}
#settingsNew {
    margin-top: 5px;
    padding-top: 5px;
    border-top: 1px solid var(--main-color);
}
#settingsName {
    margin-right: 4px;
    padding-right: 4px;
    padding-left: 4px;
    text-align: center;
}
#settingsList {
    max-height: 450px;
    overflow-y: auto;
}
#settingsList button.selected {
    font-weight: bold;
    background-color: #ccc;
}
#settingsList button.selected:hover {
    background-color: #aaa;
}
#settingsList svg {
    pointer-events: none;
}

#help p {
    margin: 2px;
}
#help a {
    font-weight: bold;
    text-decoration: underline;
}
@supports (-moz-appearance:none) {
    #help li {
        margin-left: 20px;
    }
    .content br {
        margin: 10px;
    }
}
#help li {
    list-style-type: circle;
    margin-left: 10px;
}
#help .header {
    border: 1px solid rgba(0,0,0,0.75);
    background-color: rgba(0,0,0,0.05);
    border-radius: 2px;
    justify-content: center;
    white-space: nowrap;
    text-align: center;
    margin-bottom: 5px;
    padding: 1px 0 2px 0;
    font-family: monospace;
    font-size: larger;
    font-weight: bold;
}
#help .header2 {
    border: 1px solid rgba(0,0,0,0.25);
    background-color: rgba(0,0,0,0.03);
    border-radius: 2px;
    justify-content: center;
    white-space: nowrap;
    text-align: center;
    margin-bottom: 5px;
    padding: 1px 0 2px 0;
    font-family: monospace;
}
#help .title {
    text-align: center;
    font-size: larger;
    font-weight: bold;
    padding: 10px 0 5px 50px;
}
#help .title label {
    display: inline-flex;
}
#help #kiri-version {
    position: absolute;
    right: 10px;
    bottom: 5px;
    font-family: monospace;
    font-weight: normal;
    font-size: smaller;
    color: #333;
}
#help .content {
    flex-direction: column;
    margin: 3px 0 8px 0;
    line-height: 1.5em;
}
#help .content p {
    text-align: justify;
}
#help .content li {
    line-height: 1.75em;
    padding-left: 22px ;
    text-indent: -22px ;
}
#help .footer {
    font-family: monospace;
    align-items: center;
    white-space: nowrap;
    flex-direction: column;
    padding: 8px 0 3px 0;
    border-top: 1px dashed #aaa;
}
#help th, #help td {
    font-family: monospace;
}
#help td label {
    font-weight: bold;
}
#help button {
    display: inline-flex;
}
.help-label {
    border-top-left-radius: 3px;
    border-bottom-left-radius: 3px;
    border: 1px solid rgba(0,0,0,0);
    border-right: 0;
    padding: 12px 10px 12px 8px;
    z-index: 1000;
}
.help-label.sel {
    background-color: white;
    border: 1px solid #888;
    border-right: 0;
}
#help-tabs {
    width: 550px;
    height: 450px;
    transform: translateX(-1px);
}
#help-tabs p, #help-tabs li, #help-tabs table {
    color: #035;
}
#help-tab-support a:hover, #help-tab-start a:hover {
    background-color: rgba(61,133,198,0.25);
    border-radius: 5px;
}
#help-start {
    margin: 5px 0 5px 0;
}
#help-start a {
    padding: 5px;
}
.help-tab {
    flex-grow: 1;
    display: none;
    overflow-y: auto;
    border-top-right-radius: 3px;
    border-bottom-right-radius: 3px;
    border: 1px solid #888;
    padding: 10px;
    background-color: white;
    white-space: normal;
}
.confirm {
    padding-top: 15px;
}
.confirm > div {
    padding-top: 10px;
}
.confirm label {
    text-align: center;
    line-height: 1.5em;
    padding: 0 10px 0 10px;
}
.confirm button {
    margin-left: 4px;
}
.confirm input {
    padding: 3px;
    margin: 0 10px 0 10px;
    text-align: left;
}

.dev-type {
    font-family: 'Russo One', sans-serif;
    flex-direction: column;
    align-items: center;
    background-color: rgba(255,255,255,0.75);
    border-radius: 5px;
    margin: 5px;
    cursor: pointer;
}
.dev-type svg {
    width: 60px;
    height: 30px;
}
.dev-sel {
    background-color: var(--highlight);
}

.t-head {
    text-align: center;
    font-weight: bold;
    padding-bottom: 5px;
}
.t-33 {
    width: 33%;
}
.t-group {
    background-image: var(--gradbar);
    white-space: nowrap;
    text-align: center;
    justify-content: center;
    border-radius: 2px;
    padding: 1px 0 2px 0;
    margin: 5px 0 5px 0;
    color: white;
}
.t-body {
    background-color: rgba(255,255,255,0.5);
    border: 1px solid #bbb;
    border-radius: 3px;
}
.t-inset {
    padding: 3px;
}
.t-pad {
    width: 5px;
    height: 5px;
}
.t-pad2 {
    width: 10px;
    height: 10px;
}

#devices {
    width: 225px;
}
#device1, #device2, #palette3 {
    width: 225px;
}
#palette3 {
    display: none;
}
#dev-gcode textarea {
    font-family: monospace;
    overflow: auto;
    padding: 5px;
    width: 100%;
    background-color: #f8f8f8;
}
#device-action, #tool-action {
    margin-top: 5px;
}
#device-action button, #tool-action button {
    flex-direction: column;
    justify-content: center;
}
#catalogList {
    min-width: 150px;
    height: 350px;
    overflow-y: scroll;
}
#catalogList .label {
    width: 12em;
    justify-content: flex-end;
}
#catalogList .rename {
    font-style: italic;
    color: #335;
}

#layer-animate {
    position: absolute;
    z-index: 2;
    left: 15px;
    right: 15px;
    bottom: 3px;
}
#layer-animate svg {
    color: #333;
    font-size: 30px;
}
#layer-animate .speed {
    width: 30px;
    margin-left: 5px !important;
}
#layer-animate .progress {
    width: 3.5em;
}
#layer-animate button {
    width: 45px;
    align-items: center;
    justify-content: center;
}
#layer-animate label {
    display: inline-flex;
    border-radius: 3px;
    border: 1px solid #aaa;
    margin: 1px 2px 2px 1px;
    padding: 2px;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    background-color: #ddd;
}

#layer-toolpos {
    position: absolute;
    display: none;
    right: 3px;
    bottom: 3px;
}
#layer-toolpos label, #layer-toolpos input {
    display: inline-flex;
    height: 30px;
    border-radius: 3px;
    border: 1px solid #ccc;
    justify-content: center;
    align-items: center;
    font-weight: bold;
    background-color: #ddd;
}
#layer-toolpos label {
    width: 30px;
    padding: 1px 1px 1px 1px;
    margin: 1px 1px 2px 6px;
}
#layer-toolpos input {
    background-color: #eee;
    font-family: monospace;
    padding: 1px 4px 1px 4px;
    margin: 1px 1px 2px 1px;
}

#layer-slider {
    position: absolute;
    font-size: smaller;
    left: 15px;
    right: 15px;
    bottom: max(3px, env(safe-area-inset-bottom));
    pointer-events: all;
}
#slider.slider-mobile {
    height: 40px !important;
}
#slider {
    display: none;
    height: 30px;
    z-index: 100;
}
.mobile .sli-drag-el {
    background-color: rgba(200,0,0,0.8) !important;
}
#slider-hi-val, #slider-lo-val {
    display: none;
    position: absolute;
    font-family: monospace;
    transform: translateY(-50%);
    background-color: rgba(255,255,255,0.5);
    border: 1px solid #ddd;
    border-radius: 3px;
    bottom: 110%;
    left: 50%;
}
#slider > div {
    justify-content: center;
    flex-direction: row;
    align-items: center;
}
.dark #slider-center {
    background-image: var(--holdbar-dk);
}
#slider-center {
    background-image: var(--holdbar);
}
.dark #slider-zero, .dark #slider-max {
    background-color: #555;
    color: white;
}
#slider-zero {
    z-index: 10;
    margin-right: 3px;
    background-color: #ccc;
    border-top-left-radius: 10px;
    border-bottom-left-radius: 10px;
}
#slider-max {
    background-color: #ccc;
    border-top-right-radius: 10px;
    border-bottom-right-radius: 10px;
    margin-left: 3px;
}
.dark #slider-hold {
    background-color: rgba(255,255,255,0.25);
}
#slider-hold {
    background-color: rgba(0,0,0,0.15);
    position: absolute;
    bottom: 0;
    right: 0;
    top: 0;
}
#slider-hold .slider-mobile {
    width: 40px !important;
}
#slider-hold .handle {
    width: 15px;
    height: 100%;
    border-radius: 3px;
    background-color: var(--bg-gray);
}
#slider-mid {
    width: 20px;
}

#top-slider {
    position: absolute;
    display: none;
    top: 60px;
    left: 50px;
    right: 50px;
}
#anim-slider {
    width: 100%;
}

#alert-area {
    display: none;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: 57px;
    right: 0;
    left: 0;
}
#alert-border {
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: 50%;
    background-color: rgba(255,255,255,0.5);
    border: 3px solid var(--bg-gray);
    border-radius: 5px;
}
#alert-border:hover {
    background-color: rgba(0,0,0,0.1);
}
#alert-text {
    display: flex;
    text-align: left;
    font-weight: normal;
    flex-direction: column;
    margin: 3px 5px 3px 5px;
    color: black;
}
#alert-text p {
    margin: 5px;
    text-align: center;
}

#speeds {
    display: none;
    position: absolute;
    height: 100%;
    top: 0;
    right: 100%;
    bottom: 0;
    border: 0;
    margin: 0;
    padding: 0;
}
#speedbar {
    position: absolute;
    top: 3px;
    right: 3px;
    background-color: transparent;
}
.dark #speedbar label {
    color: black;
}
#speedbar label {
    flex-grow: 1;
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    font-family: monospace;
    font-size: 12px;
    padding: 0 5px 0 5px;
    color: #fff;
    margin: 0.5px;
    border-radius: 3px;
}

#panel-right{
    overflow: unset;
}
.settings {
    max-height: 100%;
    overflow-y: auto;
    overflow-x: hidden;
    align-items: stretch;
    text-transform: capitalize;
    /* background-color: rgba(255,255,255,0.5); */
}
.settings .set-group {
    cursor: pointer;
}
.settings .set-header a {
    font-size: smaller;
}
.set2-group {
    border-radius: 3px;
    border: 1px solid #ddd !important;
    background-color: #fff;
    flex-flow: column;
    padding: 4px;
    margin: 3px;
}
.set2-group .var-row {
    background: #fff;
    padding: 1px 4px 1px 4px;
    margin: 0 !important;
    border-left: 3px solid transparent;
    border-right: 3px solid transparent;
}
.set2-group .var-row:hover {
    border-right: 3px solid var(--blue-1);
    background-color: var(--blue-4) !important;
}
.set2-group .var-row label {
    margin-right: 25px;
}
.set2-sep {
    background: #fff;
    flex-shrink: 0;
    flex-direction: column;
    margin: 0 0 3px 0;
}
.pop-sep, .set-sep {
    border: 0 !important;
    padding: 0 !important;
    height: 1px;
    min-height: 1px;
    max-height: 1px;
    margin-top: 2px;
    margin-bottom: 2px;
    background-color: #bbb !important;
}
.set-header {
    white-space: nowrap;
    border-radius: 2px;
    justify-content: left;
    background-color: var(--blue-3);
    border-left: 3px solid transparent;
    border-right: 3px solid var(--main-color-hover);
    border-bottom: 0.5px solid var(--main-color-hover);
    padding: 4px;
    margin: 0 0 4px 0;
}
.set-header-line {
    margin-left: 5px;
    width: 100%;
}
.set-group {
    align-items: center;
    flex-direction: column;
    background-color: rgba(255,255,255,0.9);
    border: 1px solid rgba(0,0,0,0.2);
    border-radius: 3px;
    padding: 8px 10px 8px 10px;
    color: var(--fg-gray);
}
.set-group:hover {
    background-color: #eee;
    border: 1px solid #aaa;
    color: #000;
}
.set-pop {
    top: 50%;
    left: calc(100% + 6px);
    position: absolute;
    white-space: nowrap;
    flex-direction: column;
    transform: translateY(-50%);
    background-color: #fff;
    border: 1px solid #aaa;
    border-radius: 5px;
    margin-right: 5px;
    padding: 5px;
}
.settings .ext-buttons {
    margin: 0 9px 0 14px;
    gap: 3px;
}
#layers .var-row {
    border-radius: 10px;
    background-color: #ddd;
    padding: 2px 5px 2px 5px;
    margin: 0 2px 3px 2px;
}
#layers button {
    margin-left: 4px;
    margin-top: 0;
    margin-bottom: 3px;
    padding-left: 9px;
    padding-right: 9px;
    border-radius: 10px;
    font-weight: bold;
    background-color: var(--highlight);
}
#layers button:hover {
    background-color: var(--main-color);
}
.var-row {
    white-space: nowrap;
    align-items: center;
}
.var-row label {
    padding: 2px 4px 2px 0;
    flex-grow: 1;
    font-size: smaller;
}
.var-area {
    gap: 3px;
}
.var-area label {
    padding: 2px 0 2px 0;
    font-size: smaller;
}
.var-row input, .var-area input {
    margin-right: 0;
    margin-bottom: 1px;
    padding-bottom: 1px;
    padding-top: 1px;
}
.var-row button {
    margin-right: 0;
    margin-bottom: 1px;
}
.table-row {
    flex-direction: row;
    align-items: stretch;
}
.nounderline a {
    text-decoration: none !important;
    line-height: 2em;
}
.nounderline svg {
    width: 30px !important;
}
.mono {
    font-family: monospace;
}

#fs-edit {
    text-transform: none;
    padding: 1px 3px 1px 3px;
    margin: 0 3px 0 0 !important;
}
#gdpr {
    position: absolute;
    display: none;
    bottom: 10px;
    right: 10px;
    z-index: 1000;
    padding: 20px;
    border-radius: 5px;
    border: 1px solid black;
    background-color: white;
}
#gdpr a {
    text-decoration: underline;
}
#gotit {
    font-weight: bold;
    font-size: larger;
    padding: 5px 20px 5px 20px;
    margin-left: 10px;
}
#stats {
    position: fixed;
    font-size: 10px;
    bottom: 5px;
    right: 5px;
    color: #000;
    flex-direction: column;
    align-items: flex-end;
}
.dark #stats {
    color: #888;
}
#stats:hover #rnfo {
    display: grid;
}
.dark #rnfo {
    color: #aaa;
}
.dark #rnfo label {
    color: #ada;
}
#rnfo {
    display: none;
    grid-template-columns: min-content 1fr;
    position: absolute;
    bottom: 100%;
    gap: 3px;
    right: 0;
    background-color: rgba(255,255,255,0.05);
    border: 1px solid black;
    border-radius: 3px;
    padding: 5px;
}
#rnfo label {
    text-align: right;
}
#context-menu {
    display: none;
    position: absolute;
    flex-direction: column;
    padding: 4px 1px 4px 1px;
    border: 1px solid #bbb;
    border-radius: 3px;
    background-color: rgba(255,255,255,0.85);
}
#context-menu button {
    margin: 0;
    padding: 10px;
    border-radius: 0;
    border: 1px solid rgba(255,255,255,0);
    background-color: rgba(255,255,255,0);
}
#context-menu button:hover {
    border-top: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
    background-color: #eee;
    color: black;
}
#context-menu .sep {
    border-top: 1px solid #ddd;
    margin: 5px 0 5px 0;
}

.range-info {
    position: relative;
}
.range-info:hover .range-detail {
    display: flex;
}
.range-detail {
    position: absolute;
    display: none;
    flex-direction: column;
    bottom: 50%;
    right: 100%;
    padding: 5px;
    margin: 0 10px 0 10px;
    font-size: smaller;
    font-family: monospace;
    transform: translateY(50%);
    background-color: rgba(255,255,255,0.8);
    border: 1px solid #aaa;
    border-radius: 5px;
}
.range-detail label.pad {
    padding-right: 8px;
    border-bottom: 1px solid rgba(0,0,0,0.1);
}
.range-detail label.val {
    font-weight: bold;
}
.range-detail span {
    flex-grow: 1;
}
